#include<bits/stdc++.h>
using namespace std;
const int MAXN=110,INF=0x7fffffff;
int n,m,a[MAXN][MAXN],sum,ans=INF;
void check(int x,int y)
{
	int t[MAXN][MAXN];
	memcpy(t,a,sizeof(a));
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j)
			if(t[i][j])
			{
				if(i+x-1<=n&&j+y-1<=m)
				{
					int temp=t[i][j];
					for(int k=0;k<x;++k)
						for(int l=0;l<y;++l)
						{
							t[i+k][j+l]-=temp;
							if(t[i+k][j+l]<0)return;
						}
				}
				else return;
			}
	ans=sum/(x*y);
	return;
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j)
		{
			scanf("%d",&a[i][j]);
			sum+=a[i][j];
		}
	for(int i=n;i;--i)
		for(int j=m;j;--j)
		{
			if(!(sum%(i*j))&&sum/(i*j)<ans)
				check(i,j);
		}
	printf("%d\n",ans);
	return 0;
}
